package com.bulemobi.net.tsz.afinal.mynet;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.bulemobi.data.DataCentre;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.List;

/**
 * 内网接口预解析
 * @author david
 */
public class InnerNetUtil {
    //根据string获取jsonObject
    public static JSONObject getJsonObject(String jsonString){
        try {
            JSONObject jsonObject = new JSONObject(jsonString);
            return jsonObject;
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return null;
    }

    //根据接口定义的规则得出status
    public static boolean getStatus(JSONObject jsonObject){
        if(jsonObject == null){
            return false;
        }
        if(DataCentre.RIGHT_RejCode.equals(jsonObject.optString("_RejCode"))){
            return true;
        }
        return false;
    }
    
    public static boolean listISEmpt(JSONObject jsonObject){
        if(jsonObject == null){
            return false;
        }
        if("1".equals(jsonObject.optString("status"))){
            return true;
        }
        return false;
    } 
    
    //根据接口定义的规则得出errorMsg
    public static String getErrorMsg(JSONObject jsonObject){
        if(jsonObject == null){
            return  "服务器错误";
        }
        return jsonObject.optString("msg");
    }

    //根据接口规则获取到内容
    @SuppressWarnings("unchecked")
	public static Object getData(JSONObject jsonObject ,Class classOfT ){
        Gson gson = new Gson();
        return gson.fromJson(jsonObject.optString("res"),classOfT);
    }
    
    //子方法只能针对基本数据类型
    public static <T> List<T> getData(String jsonText) {
    	Gson gson = new Gson();
        List<T> tempList = gson.fromJson(jsonText, new TypeToken<List<T>>() {}.getType());
        return tempList;
    }
}
